#pragma once
#ifndef SMPPMESSAGESUBMISSIONREQUESTTLVS_HPP
#define SMPPMESSAGESUBMISSIONREQUESTTLVS_HPP

#include "SMPPAlertOnMessageDelivery.hpp"
#include "SMPPBillingIdentification.hpp"
#include "SMPPCallbackNum.hpp"
#include "SMPPCallbackNumAtag.hpp"
#include "SMPPCallbackNumPresInd.hpp"
#include "SMPPDestAddrNpCountry.hpp"
#include "SMPPDestAddrNpInformation.hpp"
#include "SMPPDestAddrNpResolution.hpp"
#include "SMPPDestAddrSubunit.hpp"
#include "SMPPDestBearerType.hpp"
#include "SMPPDestNetworkId.hpp"
#include "SMPPDestNetworkType.hpp"
#include "SMPPDestNodeId.hpp"
#include "SMPPDestSubaddress.hpp"
#include "SMPPDestTelematicsId.hpp"
#include "SMPPDestPort.hpp"
#include "SMPPDisplayTime.hpp"
#include "SMPPItsReplyType.hpp"
#include "SMPPItsSessionInfo.hpp"
#include "SMPPLanguageIndicator.hpp"
#include "SMPPMessagePayload.hpp"
#include "SMPPMoreMessagesToSend.hpp"
#include "SMPPMsMsgWaitFacilities.hpp"
#include "SMPPMsValidity.hpp"
#include "SMPPNumberOfMessages.hpp"
#include "SMPPPayloadType.hpp"
#include "SMPPPrivacyIndicator.hpp"
#include "SMPPQosTimeToLive.hpp"
#include "SMPPSarMsgRefNum.hpp"
#include "SMPPSarSegmentSeqnum.hpp"
#include "SMPPSarTotalSegments.hpp"
#include "SMPPSetDpf.hpp"
#include "SMPPSmsSignal.hpp"
#include "SMPPSourceAddrSubunit.hpp"
#include "SMPPSourceBearerType.hpp"
#include "SMPPSourceNetworkId.hpp"
#include "SMPPSourceNetworkType.hpp"
#include "SMPPSourceNodeId.hpp"
#include "SMPPSourcePort.hpp"
#include "SMPPSourceSubaddress.hpp"
#include "SMPPSourceTelematicsId.hpp"
#include "SMPPUserMessageReference.hpp"
#include "SMPPUserResponseCode.hpp"
#include "SMPPUssdServiceOp.hpp"

namespace smpp{
namespace pdu{

class SMPP_DLLPRFX MessageSubmissionRequestTLVs{
protected:
	AlertOnMessageDelivery *_AlertOnMessageDelivery;
	BillingIdentification *_BillingIdentification;
	CallbackNum *_CallbackNum;
	CallbackNumAtag *_CallbackNumAtag;
	CallbackNumPresInd *_CallbackNumPresInd;
	DestAddrNpCountry *_DestAddrNpCountry;
	DestAddrNpInformation *_DestAddrNpInformation;
	DestAddrNpResolution *_DestAddrNpResolution;
	DestAddrSubunit *_DestAddrSubunit;
	DestBearerType *_DestBearerType;
	DestNetworkId *_DestNetworkId;
	DestNetworkType *_DestNetworkType;
	DestNodeId *_DestNodeId;
	DestSubaddress *_DestSubaddress;
	DestTelematicsId *_DestTelematicsId;
	DestPort *_DestPort;
	DisplayTime *_DisplayTime;
	ItsReplyType *_ItsReplyType;
	ItsSessionInfo *_ItsSessionInfo;
	LanguageIndicator *_LanguageIndicator;
	MessagePayload *_MessagePayload;
	MoreMessagesToSend *_MoreMessagesToSend;
	MsMsgWaitFacilities *_MsMsgWaitFacilities;
	MsValidity *_MsValidity;
	NumberOfMessages *_NumberOfMessages;
	PayloadType *_PayloadType;
	PrivacyIndicator *_PrivacyIndicator;
	QosTimeToLive *_QosTimeToLive;
	SarMsgRefNum *_SarMsgRefNum;
	SarSegmentSeqnum *_SarSegmentSeqnum;
	SarTotalSegments *_SarTotalSegments;
	SetDpf *_SetDpf;
	SmsSignal *_SmsSignal;
	SourceAddrSubunit *_SourceAddrSubunit;
	SourceBearerType *_SourceBearerType;
	SourceNetworkId *_SourceNetworkId;
	SourceNetworkType *_SourceNetworkType;
	SourceNodeId *_SourceNodeId;
	SourcePort *_SourcePort;
	SourceSubaddress *_SourceSubaddress;
	SourceTelematicsId *_SourceTelematicsId;
	UserMessageReference *_UserMessageReference;
	UserResponseCode *_UserResponseCode;
	UssdServiceOp *_UssdServiceOp;
public:
	MessageSubmissionRequestTLVs(
		const AlertOnMessageDelivery *nAlertOnMessageDelivery = 0,
		const BillingIdentification *nBillingIdentification = 0,
		const CallbackNum *nCallbackNum = 0,
		const CallbackNumAtag *nCallbackNumAtag = 0,
		const CallbackNumPresInd *nCallbackNumPresInd = 0,
		const DestAddrNpCountry *nDestAddrNpCountry = 0,
		const DestAddrNpInformation *nDestAddrNpInformation = 0,
		const DestAddrNpResolution *nDestAddrNpResolution = 0,
		const DestAddrSubunit *nDestAddrSubunit = 0,
		const DestBearerType *nDestBearerType = 0,
		const DestNetworkId *nDestNetworkId = 0,
		const DestNetworkType *nDestNetworkType = 0,
		const DestNodeId *nDestNodeId = 0,
		const DestSubaddress *nDestSubaddress = 0,
		const DestTelematicsId *nDestTelematicsId = 0,
		const DestPort *nDestPort = 0,
		const DisplayTime *nDisplayTime = 0,
		const ItsReplyType *nItsReplyType = 0,
		const ItsSessionInfo *nItsSessionInfo = 0,
		const LanguageIndicator *nLanguageIndicator = 0,
		const MessagePayload *nMessagePayload = 0,
		const MoreMessagesToSend *nMoreMessagesToSend = 0,
		const MsMsgWaitFacilities *nMsMsgWaitFacilities = 0,
		const MsValidity *nMsValidity = 0,
		const NumberOfMessages *nNumberOfMessages = 0,
		const PayloadType *nPayloadType = 0,
		const PrivacyIndicator *nPrivacyIndicator = 0,
		const QosTimeToLive *nQosTimeToLive = 0,
		const SarMsgRefNum *nSarMsgRefNum = 0,
		const SarSegmentSeqnum *nSarSegmentSeqnum = 0,
		const SarTotalSegments *nSarTotalSegments = 0,
		const SetDpf *nSetDpf = 0,
		const SmsSignal *nSmsSignal = 0,
		const SourceAddrSubunit *nSourceAddrSubunit = 0,
		const SourceBearerType *nSourceBearerType = 0,
		const SourceNetworkId *nSourceNetworkId = 0,
		const SourceNetworkType *nSourceNetworkType = 0,
		const SourceNodeId *nSourceNodeId = 0,
		const SourcePort *nSourcePort = 0,
		const SourceSubaddress *nSourceSubaddress = 0,
		const SourceTelematicsId *nSourceTelematicsId = 0,
		const UserMessageReference *nUserMessageReference = 0,
		const UserResponseCode *nUserResponseCode = 0,
		const UssdServiceOp *nUssdServiceOp = 0);

	MessageSubmissionRequestTLVs(const MessageSubmissionRequestTLVs &);

	~MessageSubmissionRequestTLVs();

	void setAlertOnMessageDelivery(const AlertOnMessageDelivery *);

	const AlertOnMessageDelivery *getAlertOnMessageDelivery() const;

	void setBillingIdentification(const BillingIdentification *);

	const BillingIdentification *getBillingIdentification() const;

	void setCallbackNum(const CallbackNum *);

	const CallbackNum *getCallbackNum() const;

	void setCallbackNumAtag(const CallbackNumAtag *);

	const CallbackNumAtag *getCallbackNumAtag() const;

	void setCallbackNumPresInd(const CallbackNumPresInd *);

	const CallbackNumPresInd *getCallbackNumPresInd() const;

	void setDestAddrNpCountry(const DestAddrNpCountry *);

	const DestAddrNpCountry *getDestAddrNpCountry() const;

	void setDestAddrNpInformation(const DestAddrNpInformation *);

	const DestAddrNpInformation *getDestAddrNpInformation() const;

	void setDestAddrNpResolution(const DestAddrNpResolution *);

	const DestAddrNpResolution *getDestAddrNpResolution() const;

	const DestAddrSubunit *getDestAddrSubunit() const;

	void setDestAddrSubunit(const DestAddrSubunit *);

	const DestBearerType *getDestBearerType() const;

	void setDestBearerType(const DestBearerType *);

	const DestNetworkId *getDestNetworkId() const;

	void setDestNetworkId(const DestNetworkId *);

	const DestNetworkType *getDestNetworkType() const;

	void setDestNetworkType(const DestNetworkType *);

	void setDestNodeId(const DestNodeId *);

	const DestNodeId *getDestNodeId() const;

	void setDestSubaddress(const DestSubaddress *);

	const DestSubaddress *getDestSubaddress() const;

	void setDestTelematicsId(const DestTelematicsId *);

	const DestTelematicsId *getDestTelematicsId() const;

	void setDestPort(const DestPort *);

	const DestPort *getDestPort() const;

	void setDisplayTime(const DisplayTime *);

	const DisplayTime *getDisplayTime() const;

	void setItsReplyType(const ItsReplyType *);

	const ItsReplyType *getItsReplyType() const;

	void setItsSessionInfo(const ItsSessionInfo *);

	const ItsSessionInfo *getItsSessionInfo() const;

	void setLanguageIndicator(const LanguageIndicator *);

	const LanguageIndicator *getLanguageIndicator() const;

	void setMessagePayload(const MessagePayload *);

	const MessagePayload *getMessagePayload() const;

	void setMoreMessagesToSend(const MoreMessagesToSend *);

	const MoreMessagesToSend *getMoreMessagesToSend() const;

	void setMsMsgWaitFacilities(const MsMsgWaitFacilities *);

	const MsMsgWaitFacilities *getMsMsgWaitFacilities() const;

	void setMsValidity(const MsValidity *);

	const MsValidity *getMsValidity() const;

	void setNumberOfMessages(const NumberOfMessages *);

	const NumberOfMessages *getNumberOfMessages() const;

	void setPayloadType(const PayloadType *);

	const PayloadType *getPayloadType() const;

	void setPrivacyIndicator(const PrivacyIndicator *);

	const PrivacyIndicator *getPrivacyIndicator() const;

	void setQosTimeToLive(const QosTimeToLive *);

	const QosTimeToLive *getQosTimeToLive() const;

	void setSarMsgRefNum(const SarMsgRefNum *);

	const SarMsgRefNum *getSarMsgRefNum() const;

	void setSarSegmentSeqnum(const SarSegmentSeqnum *);

	const SarSegmentSeqnum *getSarSegmentSeqnum() const;

	void setSarTotalSegments(const SarTotalSegments *);

	const SarTotalSegments *getSarTotalSegments() const;

	void setSetDpf(const SetDpf *);

	const SetDpf *getSetDpf() const;

	void setSmsSignal(const SmsSignal *);

	const SmsSignal *getSmsSignal() const;

	void setSourceAddrSubunit(const SourceAddrSubunit *);

	const SourceAddrSubunit *getSourceAddrSubunit() const;

	void setSourceBearerType(const SourceBearerType *);

	const SourceBearerType *getSourceBearerType() const;

	void setSourceNetworkId(const SourceNetworkId *);

	const SourceNetworkId *getSourceNetworkId() const;

	void setSourceNetworkType(const SourceNetworkType *);

	const SourceNetworkType *getSourceNetworkType() const;

	void setSourceNodeId(const SourceNodeId *);

	const SourceNodeId *getSourceNodeId() const;

	void setSourcePort(const SourcePort *);

	const SourcePort *getSourcePort() const;

	void setSourceSubaddress(const SourceSubaddress *);

	const SourceSubaddress *getSourceSubaddress() const;

	void setSourceTelematicsId(const SourceTelematicsId *);

	const SourceTelematicsId *getSourceTelematicsId() const;

	void setUserMessageReference(const UserMessageReference *);

	const UserMessageReference *getUserMessageReference() const;

	void setUserResponseCode(const UserResponseCode *);

	const UserResponseCode *getUserResponseCode() const;

	void setUssdServiceOp(const UssdServiceOp *);

	const UssdServiceOp *getUssdServiceOp() const;

	const quint16 getLength() const;
};

}
}

#endif
